﻿/***
    Copyright 2012 Stijn Van Antwerpen

    This file is part of Qasparov.

    Qasparov is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Qasparov is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Qasparov. If not, see <http://www.gnu.org/licenses/>.

 */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using C = Com.Oxilly.Qasparov.QsbClient;
using System.Diagnostics;


namespace QasparovLogViewer
{
    class Program
    {
       

        static void Main(string[] args)
        {
            var api = C.ClientFactory.CreateClientApi();
            var client = api.GetClient();

            client.OnQsbMessage += new EventHandler<C.QsbMessageEventArgs>(client_OnQsbMessage);
            
            var key = Console.ReadKey(true).KeyChar.ToString().ToLower();
            while (!key.Equals("q"))
            {
                Console.WriteLine("You pressed " + key); 
                ProcessKey(key);
                key = Console.ReadKey().KeyChar.ToString().ToLower();
            }
            api.CloseClient();
        }

        static void client_OnQsbMessage(object sender, C.QsbMessageEventArgs e)
        {
            var msg = e.QsbMessage;
            foreach (var field in msg.GetType().GetFields())
            {
                var v = field.GetValue(msg);
                Console.WriteLine("{0}: {1}",
                    field.Name,
                    v.ToString());
            }
            Console.WriteLine();
        }

        private static void ProcessKey(String key)
        {
           
        } 
    }
}
